Cross-Channel User Tracking Systems, Methods and Devices

ABSTRACT

In part, the invention relates to systems and methods suitable for operating a client side platform for deterministically correlating a unique mobile user across multiple marketing communication channels using a universal identifier to provide a deterministic mapping of individual channel user identifiers. In an embodiment, the invention relates to systems and methods suitable for operating a client side platform for probabilistically correlating a unique mobile user across multiple marketing communication channels to provide a mapping of individual channel user identifiers. The systems and methods can be used to identify user activity across different marketing communication channels accessed with a given mobile device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 61/617,357 filed Mar. 29, 2012, the entire disclosure of whichis incorporated by reference herein.

BACKGROUND

User tracking is a prominent trend in online media. The ability to trackand uniquely identify users is important for a wide range of marketingstrategies. It is therefore expanding rapidly from the online to themobile world. User interactions with mobile devices, along with theconsumption of mobile services, can relay significant information abouta user's behavior and their demographics. Understanding the user becomesequally important to the role and the utility of those services withregard to discovering user insights and intents. That intelligence iscritical for prediction and optimization of marketing campaigns andtheir creative performance.

Mobile marketing efforts usually include various vendor products andservices, along with 3rd party technologies and services to achievecampaign reach, frequency and conversion objectives. Achieving suchobjectives often requires use of a mix of marketing communicationchannels. Mobile user tracking is normally isolated with regard toindividual products or individual marketing channels. As a result,tracking individual users across channels is not easily achieved.

Conversion is a standard metric used to measure the success of marketingcampaigns, which can be based on the attrition of users that fail toproceed to each touch point on the way to completion of an actual useraction. Examples of conversion events may include a file download by theuser, a completion of a user registration form, or a purchase ofproducts or services. Determining when a user clicks on an ad, watchesit, and then whether or not the user takes action with respect to the adis challenging. Evaluating conversion is further complicated by the wideranges of activities, interactions and channels a user can undertake.

Mobile ad servers log impression delivery when ad tags are transmittedto a publisher's content server. A more desirable approach is to countimpressions after actual presentation of the marketing messages to endusers. Most mobile SSI systems have no way of determining whether an adwas delivered to the device and played to completion. The result isdiscrepancies in impression counting. Another example of the problemoccurs when users navigate to new content before an ad creative hascompletely rendered. The result is impressions reported as delivered,even though not seen which can be a basis for advertiser paymentconcerns.

As a result, a need therefore exists for analysis and reporting tools toinform their allocation decisions. A need also exists to address issuesrelating to user tracking across different channels and to improveconversion and track return on investment. The embodiments of theinvention address this need and others.

SUMMARY

In one aspect, the invention relates to systems, methods, non-transitorymachine readable media, devices and systems configured to correlate useractivities such as interactions with messages and other content acrossmultiple mobile marketing channels. In one embodiment, one or moresoftware-based methods are implemented on the client side of the networksuch as within a client device such as a mobile device to facilitatecross-channel user tracking. One embodiment of the invention relates toend to end cross channel user tracking which includes tracking uniqueusers across multiple delivery channels, across multiple campaigns andwithin a given campaign.

One embodiment includes a client side approach for deterministicallycorrelating a unique mobile user across multiple marketing communicationchannels. A universal identifier provides a deterministic mapping ofindividual channel user identifiers to each other by uniquely mappingeach of them to a single unique universal user identifier assigned to anindividual channel user's device. This allows that user to be identifiedacross marketing communication channels accessed with their device. Inone embodiment, a universal identifier provides a probabilistic mappingof individual channel user identifiers to each other by uniquely mappingeach of them to that single unique universal user identifier assigned totheir device. Combinations of user tracker using a universal identifierand both deterministic and probabilistic mapping methods are alsoembodiments of the invention.

In one embodiment, channel specific user identifiers, such as EIDs, aresaved in device persistent memory, along with a generated universal ID,such as a VID, that is mapped to each channel's user identifier. Crosschannel user correlation can be accomplished by embedding requests forremote programs in content and advertisements consumed by users on theirmobile device. External programs are retrieved from remote servers whencontent is rendered by device resident applications. These programsincorporate software modules and computing devices that captureindividual channel user identifiers as the user navigates across mediadistribution channels.

In one embodiment, the term federated refers to usage of a universalidentifier that is generated by the federation of unique (non-universal)identifiers collected from the same user. The storage of userinformation with regard to multiple channels under a single identifiercan be referred to as federation because it federates identifiers forthe user across channels, apps, emails, messages, etc.

New channel correlations can be transmitted to a remote serverapplication as the user accesses each channel for the first time. Thesecorrelations allow server side federation of the user informationassociated with each channel's user identifier, maintained by thedelivery channel itself. In one embodiment, additional federation with3rd party online and offline data sources can optionally be used togenerate user profiles that include a superset of each channel'sidentifying information, merged with additional 3^(rd) party informationfor that same user. Analysis of that expanded data set can be used togenerate enhanced psychographic, demographic and lifestyle segmenteduser profiles.

In one aspect, the invention relates to methods of user tracking acrosschannels suitable for evaluating the success of a given mobile campaignor activity. In one embodiment, tracking features suitable forevaluating which ads have the highest activity levels, user interest fora website, the number of returning visitors, or other conversion metricsare another embodiment of the invention. Software and system tools tocorrelate the impressions and clicks associated with mobile web siteuser events and engagements are another embodiment of the invention. Inaddition, software-based user interfaces and reporting tools suitablefor managing multichannel advertising budget allocations and to measureaccurate, channel-specific return on investment are other embodiments ofthe invention.

In one embodiment, a computer-based method of tracking a user across aplurality of communication channels may include generating a firstnon-universal user identifier associated with a first communicationchannel in response to a first action of a mobile device. The method mayfurther include generating a second non-universal user identifierassociated with a second communication channel in response to a secondaction of the mobile device. The method may also include storing thefirst non-universal user identifier and the second non-universal useridentifier in a data repository. The method may additionally includecorrelating, using an application installed on the mobile device, thestored first non-universal user identifier and the stored secondnon-universal user identifier with a universal identifier having anassociated user profile. Moreover, the method may include associatingthe universal identifier with a plurality of actions performed with themobile device such that the associated user profile comprises a mappingbetween the universal identifier and activities performed by the useracross the plurality of communication channels.

In an implementation, the method may include generating a thirdnon-universal user identifier associated with a third communicationchannel in response to a third action of the mobile device. The first,second, and third communication channels may be selected from the groupconsisting of receiving text messages, receiving emails, viewing avideo, viewing a webpage, viewing a video ad, viewing a webpage ad,interacting with social applications, and downloading an application.The profile may be generated using approximation methods includingclustering and probabilistic matching using a plurality of mobile devicechannel specific identifiers. Associating the universal identifier witha plurality of actions may be performed using a computing device runninga Bayseian Network to perform probabilistic user matching. Additionally,the method may include comparing one or more user profiles to incomingrequest profiles using a probabilistic Bayesian network running oncomputing device.

In one embodiment, a computer-based system of tracking a user across aplurality of communication channels may include one or more receivers,executing on a computing device. The one or more receivers may beconfigured to collect the information from the plurality ofcommunication channels. The system may further include an event IDgenerator configured to provide non-universal user identifiers that canbe matched to a universal user identifier. The system may also include adata repository comprising a plurality of non-universal useridentifiers. Each non-universal user identifier may be associated withone communication channel of the plurality of communication channels.The system may additionally include a federation server configured toreceive user actions associated with each communication channel from amobile device client application. The federation server may beconfigured to generate a universal identifier using the received useractions and the plurality of non-universal user identifiers.

In an implementation, the system may include a compact uniform resourcelocator (URL) software module configured to compact a mobile web URLaccessed by the mobile device and generate a non-universal useridentifier associated with the compacted mobile URL. The communicationchannels may be selected from the group consisting of receiving textmessages, receiving emails, viewing a video, viewing a webpage, viewinga video ad, viewing a webpage ad, and downloading an application. Thesystem may further include a privacy software module configured toenable the user to opt out of being tracked using a universalidentifier. The system may additionally include a privacy softwaremodule.

In one embodiment, a computer program product residing on a computerreadable storage medium may have a plurality of instructions storedthereon, which, when executed by a processor, may cause the processor toperform operations for tracking a user across a plurality ofcommunication channels. The operations may include generating a firstnon-universal user identifier associated with a first communicationchannel in response to a first action of a mobile device. The operationsmay further include generating a second non-universal user identifierassociated with a second communication channel in response to a secondaction of the mobile device. The operations may also include storing thefirst non-universal user identifier and the second non-universal useridentifier in a data repository. The operations may additionally includecorrelating, using an application installed on the mobile device, thestored first non-universal user identifier and the stored secondnon-universal user identifier with a universal identifier having anassociated user profile. Moreover, the operations may includeassociating the universal identifier with a plurality of actionsperformed with the mobile device such that the associated user profilecomprises a mapping between the universal identifier and activitiesperformed by the user across the plurality of communication channels.

In an implementation the operations may further include generating athird non-universal user identifier associated with a thirdcommunication channel in response to a third action of the mobiledevice. The first, second, and third communication channels may beselected from the group consisting of receiving text messages, receivingemails, viewing a video, viewing a webpage, viewing a video ad, viewinga webpage ad, interacting with social applications, and downloading anapplication. The profile may be generated using approximation methodsincluding clustering and probabilistic matching using a plurality ofmobile device channel specific identifiers. The mobile device channelspecific identifiers may be selected from the group consisting of afirst party cookie, a third party cookie, and a plurality of productidentifiers. Associating the universal identifier with a plurality ofactions may be performed using a computing device running a BayesianNetwork to perform probabilistic user matching. The operations mayfurther include comparing one or more user profiles to incoming requestprofiles using a probabilistic Bayesian network running on computingdevice.

BRIEF DESCRIPTION OF DRAWINGS

The figures are not necessarily to scale, emphasis instead generallybeing placed upon illustrative principles. The figures are to beconsidered illustrative in all aspects and are not intended to limit theinvention, the scope of which is defined only by the claims.

FIG. 1A is a schematic diagram of a system of cross-channel user andevent tracking in accordance with an illustrative embodiment of theinvention.

FIG. 1B is a schematic diagram of a mapping between a plurality ofnon-universal identifiers and a universal identifier implemented on acomputing device to facilitate cross-channel user and event tracking andreporting in accordance with an illustrative embodiment of theinvention.

FIG. 1C is a schematic diagram of an example mobile server side includeadvertising system, in accordance with an illustrative embodiment of theinvention.

FIG. 2, which is split into FIGS. 2-1 and 2-2 along connectors A and Brespectively, is a schematic diagram of a system of cross-channeltracking with respect to several communication channels.

FIG. 3, which is split into FIGS. 3-1 and 3-2 along connectors A and Brespectively, is a schematic diagram of a system of cross-channeltracking with respect to several communication channels.

FIG. 4 is a schematic diagram of a system and one or more componentsused to perform cross correlation of the various distribution channelsin accordance with an illustrative embodiment of the invention.

FIG. 5 is a schematic diagram of a compact URL service for encoding inaccordance with an illustrative embodiment of the invention.

FIG. 6 is a schematic diagram of an application tracking systemaccordance with an illustrative embodiment of the invention.

FIGS. 7A to 7F are a screen shot and representations of user tracking oradvertising information of interest that can be displayed as part of anautomatically generated report or user interface in accordance with anillustrative embodiment of the invention.

FIG. 8A is a schematic diagram of an implementation in accordance withan illustrative embodiment of the invention.

FIG. 8B is also schematic diagram of an implementation in accordancewith an illustrative embodiment of the invention.

FIG. 8C is also schematic diagram of an implementation in accordancewith an illustrative embodiment of the invention.

FIGS. 8D and 8E are a schematic diagram of universal JavaScriptimplementation in accordance with an illustrative embodiment of theinvention.

FIG. 8F is an exemplary opt out workflow allowing users to opt out offederation server participation in accordance with an illustrativeembodiment of the invention.

FIG. 8G is an exemplary opt in workflow allowing users to opt intofederation server participation in accordance with an illustrativeembodiment of the invention.

DETAILED DESCRIPTION

In one aspect, the invention relates to systems and methods for trackinguser interactions such as the interactions of a mobile device user withrespect to a plurality of communication channels. Mobile Internetadvertising includes streaming graphic or video files, in real time,into content as it is rendered at a user's mobile device. Those image ortext marketing communication messages are inserted into the content atthe publisher's content management system. Selection of a specific adand its insertion occurs prior to returning the user requested contentover a carrier's network. Images and texts are just a few of the manytypes of communication channels a user can interact with and receive adsand content through.

FIG. 1A shows an exemplary cross-channel tracking system 5 suitable foruse with a user of a mobile device 7. As shown, various communicationchannels 8 are typically accessed via the mobile device 7. With respectto a given communication channel such as for example, a 3rd Party AdServing Channel, Application installs from other applications andmobile, 3rd Party Ad Serving Channel, Marketing and CRM MessageChannels, 3rd Party Ad Serving Channel, Mobile 3rd Party Site Channel,Mobile Ad Serving Channel, Server Side Include Ad Server User Tracking,Native Application Channel, other events and interactions, and otherchannels, a non-universal identifier corresponding to a user identifieror an event identifier (“EID”) can be generated in response to a useraction with the mobile device 7. These EIDs can be stored with a userprofile using a computing device in one embodiment.

As shown in FIG. 1A, for each of the various mobile device communicationchannels with respect which the mobile device 7 can interact, anon-universal user or event identifier EID is generated such as EID 1 toEID N. In contrast, the user is unique. As a result, a unique universaluser identifier or VID can be associated with each mobile device asshown in the software-based identifier mapping 10. As shown, a computingdevice 12 can be connected to a network to receive tracking informationassociated with each EID and associated that with a VID. In oneembodiment, computing device 12 stores or runs a matching engine tomatch or map EIDs and a VID on a per mobile device basis. In turn, on aper EID basis, each EID can be mapped to the VID. Further, from thatmapping, implemented using a computing device, of EID 1 to VID, and EID2 to VID, all the way through EID N to VID, each EID can then also bemapped to another EID as shown in FIG. 1B. Specifically, as shown, EID 1and EID 8 are mapped to the VID for mobile device 7 from FIG. 1 and theVID is also mapped to by EID 6 and EID 2. Typically, each EID would mapto the VID. In this way, the paths from one EID to another such as fromEID 1 to EID 6 and from EID 2 to EID 1, and from EID 8 to EID 6 can begenerated. These paths allow useful demographic and profilinginformation to be generated for a given user of mobile device 7.

In one embodiment, a user accesses a mobile device application, such asan iPhone application, and through an SDK, the entity providing the SDKcollects an SDK specific identifier which can be an event identifiersuch as EID 1. That is a unique identifier, but since the apps aresandboxed this identifier is considered non-universal. It is notuniversal in the sense that absent more it typically cannot extend toother apps (e.g. web browser) for identification purposes. That said,this approach allows the entity providing the SDK, or a clientapplication to confirm or probabilistically confirm that the entity isgetting interactions from the same user.

As another example, when a user accesses a mobile browser, when an ad isserved, a cookie is written. Specifically, the cookie is written to theuser's browser. This cookie is yet another identifier unique to theuser, which can be EID 6 for example, but such an identifier isnon-universal. In one embodiment, the invention relates to generating aprofile data store for identified users across applications of othermobile interactions. As shown in FIG. 1B, EID 6 and EID 1 and thus amobile browser event and an SDK event can be associated with aparticular mobile device user and a VID. The profile data store collectsuser profiles or the unique identifiers or EIDs. In one embodiment, theprofile data store also enhances such EIDs with other possibleattributes e.g. location, behavioral etc.

The respective information in each product channel during federation, inan embodiment of the invention, flows to a common server side profilingdata store. A matching process, in some cases using approximationtechniques, can be used to identify users across channels wherecorrelation in the client is not possible, for example non-JavaScriptenabled mobile devices. The consolidated result is assigned to auniversal user identifier, VID. Additionally, a VID can be requested by,or transmitted at the time of correlation, to each product channel datastore as a mapping to its associated federated user profile.

Current mobile advertising systems employ what is referred to as serverside include ad (“SSI”) serving. The publisher's content managementsystem requests an advertisement over the broadband internet from an adserver, which selects a specific campaign ad and returns associated adtag markup to the requesting publisher's system.

Insertions of the ad markup at the publisher's content management systemis accomplished using a technique called server side include, tags orSSI tags. This technique refers to using variable values that a servercan include in a content file before it sends it to a requesting user.When the content management system encounters those SSI placeholdersembedded in the page, the server will obtain the value associated withthe variable name and insert it before the content is sent torequesters. The server searches content templates for environmentvariables and runs associated software to insert variable information inthe places in the page where “include” statements were embedded.

In the case of mobile server side include advertising; a softwarepackage is provided to a publisher that performs communications with anadvertising server, step A1, A2 and A3 in FIG. 1C. The software is oftencalled a convenience ad request package and supplied in a variety ofprogramming languages specific to publisher systems. This communicationresults in the return of ad markup tags specifying a particular ad orcontent. The ad or content is retrieved when the ad markup tag isrendered by the device, directly from the server hosting the ad orcontent, steps A4, A5 and A6. The ad markup tag can also define anaddress of a landing page to redirect a user's browser to when the ad isclicked.

Deficiencies inherent in server side systems including mobileadvertising systems have inhibited use of mobile advertising in general.Small publishers often cannot afford the SSI scaling costs, inconjunction with the complexity required to integrate with multiple advendors. This is required just to obtain inventory fill rates that fullymonetize their content. The added requirement publishers pay foradditional bandwidth in order to interface to multiple ad sources,before they can insert ads and transmit the content to the user is notscalable across millions of simultaneous users accessing publisherservers.

Client device generated ad requests and counting mechanisms arenecessary to accurately distribute revenue across multiple parties, aswell as for delivery auditing; long the standard in traditionaladvertising. Upon receipt of advertising markup tags by a contentmanagement system over the broadband internet, the tags are insertedinto the content replacing the server side include ad placementvariables. This occurs prior to transmission of the content to the enduser device.

Mobile SSI ad server user tracking advantageously uses ad servers toprovide a mechanism to track users by associating them with a unique 3rdparty cookie value maintained in the ad server database. This cookievalue can be passed by the publisher using a convenience ad requestpackage for storage in the device browser. The advantage of thisconvenience package pass through cookie is set as a 1st party cookie inthe publisher domain, rather than a 3rd party cookie from the ad serverdomain. This occurs as a result of the convenience package running onthe publisher domain content servers. Such cookies provide one basis toobtain EIDs with respect to a given mobile device and the particularchannel using such cookies. The results EIDS can be mapped to a VIDusing one or more computing devices as outlined herein.

In online and mobile ad serving, 3rd party cookies are often blocked bydefault configurations in most device browsers. Translation of 3rd partyad server cookies to 1st party cookies through a convenience packageallows anonymous user profiling to determine unique visits as well asfrequency capping the number of times an ad is presented to eachindividual. During subsequent ad requests, that 1st party cookie istransparently transmitted to the ad server through the conveniencepackage with the ad request, converting it back to the 3rd party adserver cookie unique to individual devices. Similarly, the conveniencepackage passes protocol information, e.g., HTTP headers, allowingcarrier and device targeting data to also be passed to the ad server.

User call to action conversions can be tracked when a user clicks on anad, via additional markup anchor tags inserted at the publisher contentmanagement system alongside the ad request itself. These conversions canbe used to generate EIDs. This performs a subsequent request to the adserver, encoding a mapping to a destination address for a landing pageassociated with the relevant ad or content. This mapping is configuredfor a specific campaign in the campaign management system. The serverrecords a click through for a user when it receives that request.

After recording a click through, the server redirects the user's browserto the actual landing page previously configured for the campaign.Additional markup code in that subsequent landing page, for example,such as transparent tracking pixel requests, can be embedded to trackuser's arrival at specific landing pages. The markup can also then tracktheir navigation through additional pages of a brand's site. The resultis a fine granularity of conversion analytics and segmentation fortargeting users and generating EIDs.

Native application ad serving works similar to online Web basedadvertising, as opposed to mobile web SSI advertising, can also bemodified to support tracking and thus EID generation. The selection ofan ad is made in real time when the client device application requestsan advertisement. Requests from the native application are communicatedto an ad server directly. Thus, in one embodiment, no conveniencepackage is used. This makes a decision on which ad source to serve an adfrom at the time of the request.

Mobile application advertisements are typically presented to users in aview within the application itself, commonly called a Web View, ratherthan the device Internet browser. A native application on mobile deviceshas its execution environment. This environment securely sandboxed fromthe browser and other applications preserves privacy and restrictsunauthorized information access.

User information can be transmitted in parallel with the client adrequest in appropriate HTTP protocol headers, or embedded in the adserver request URL. Since native applications have access to hardware,retrieval of the device ID serial number, or its unique wireless radioMAC address, obviates the need for cookie support. Those attributes areusually encrypted such as hashing one way, such that direct personallyidentifiable information (“PII”) is not transmitted outside the device.

The actual ad or content is then returned in a format the mobileapplication can decode, e.g., XML templates, while also containing theaddress of each media file to retrieve from a creative server. Once theapplication or its advertising SDK has retrieved all the mediacomponents that make up the ad, the advertising experience will bepresented to the user at the appropriate time as designated by theapplication developer. User interaction information and redirection ofthe user to a conversion landing view can be transmitted to the adserver as appropriate. This can be used to generate EIDs specific tonative applications such as EID 4 of FIG. 1A.

Mobile marketing activities can include a rich set of interactions thatenable users to engage with a campaign. In almost all cases a call toaction is required to transfer a user from the advertising activity thataims to inform the users about the interaction to an actual targetdestination. The uniquely identified information often depends on aregistration channel with respect to which the user provides “Opt in”user identifying information. Additionally, the MSISDN unique usertelephone identifier can be automatically captured by the SMS and MMSsystem, or an email address in the case of IP Messaging. The user isusually assigned a system generated identifier representing useridentifying information without transmitting that PII data.

Client side user engagement tracking within a mobile site can beimplemented including a JavaScript file request incorporated in pages ofthe site or its advertising. In this way, the JavaScript allows usertracking which allows an EID to be mapped to a VIA. When a visitor viewsthe content, suitable JavaScript markup language or code renders anddownloads an external JavaScript file containing software orinstructions, such as JavaScript, for tracking a user's interaction withsite content. This software or instructions make real time requests totracking servers to record page views and content interaction events.

The JavaScript code can also gather information about the deviceexecution environment and send that information to a tracking serverwith the HTTP requests from the visitor's browser. The document objectmodel (“DOM”) of a content page contains various browser and systeminformation, such as the browser's version and the screen resolutionthat can be captured and sent. Additionally, requests can containlocations a visitor came from, their Internet address and automaticchanges in their time zone as updated by a mobile carrier's network.

Mobile marketing companies employ a portfolio of products supporting thecreation and execution of mobile marketing and advertising campaigns.These companies provide mostly managed services, but some are pursuingthe development of self-service end to end platforms that agencies andbrands ultimately manage themselves. Each point solution traditionallyhas its own mechanisms to track and retrieve information aboutindividual users, e.g., cookies that could be stored in user's devicesand retrieved at a later time. This user information could then be usedto support new campaign activities, business intelligence operations ormore detailed reporting.

End to end user tracking across channels is important to capture andoffer the value that comes from user level specific information in theadvertising industry and others. Incoming requests instantiated by ausers' device can take any form ranging from mobile web sites to,applications, SMS, video and rich media and social networks responsechannels. Using a universal JavaScript tracking solution is onemechanism for user and device recognition. As a result, JavaScript basedtracking is also an important approach for mapping EIDs to a VID.

There are cases where cookie ingestion is not possible. For example,user devices may block cookies or a cookie may fail to be retrievedduring the session or user interaction is such that cookie cannot beenabled. In these cases, in addition to the EID's generation service, anadditional computational method within a matching engine is responsiblefor identifying resemblance to recent, known user signal collected.

In part, the invention relates to end to end user tracking acrossmarketing communication channels that enables federating uniqueinformation for each user across channel specific data stores the userinteracts with. This is based on existing unique channel useridentifiers, labeled EID ([user] Event ID) as shown in FIGS. 1A-1C and2. In FIG. 2, a system 15 for cross-channel user tracking is depicted. Arepresentative example of an ad server channel 21 a, a marketing suiteof SMS 24 a or IP messaging channels 25 a, a CRM system containingregistration pages for segmenting users by communities of interests 23a, as well as an analytics channel 22 a, represents graphically how thisis accomplished in one embodiment as shown in FIG. 2.

Effective data strategies are predicated on gaining as close to acomplete understanding of a user as possible, via the aggregation of alarge and diverse set of anonymous user-level data. The system 15 andtransfer steps shown in FIG. 2 can be used to aggregate, organize, andnormalize data points across a centralized database of unique users. Itcan be integrated into ad servers to understand why an ad was served tobegin with for example and to analyze outcomes. Campaign optimization isderived from an ability to align data, inventory and creative; withgreater alignment leading to greater campaign and creative performance.

The integrated application of the methods described in order to uniquelycorrelate and identify user attributes coming from a set mobilemarketing communication channels is shown in FIG. 2. The universaltracking mechanisms 27 employed in each channel (21 a, 22 a, 23 a, 24 a,and 25 a) are sending the collected information to the “receiver” layeror receiver 26.

The receiver layer 26 includes collected user events (signals) from allpossible product channels into a persistence layer 26. Each user eventtuple of collected attributes is funneled through the receiver layer 26to the Event ID generation queue 28 that is responsible to issue an EID.That is the event identifier and also a unique id for the correspondingtuple that upon matching is replaced by the universally assigned VID.The queuing service 28 collects and processes the requests. In oneembodiment, the service 28 processes the requests on a first in firstout basis. In an embodiment, this processing occurs substantially inreal time.

The released rows from the queue are pushed to temporary data store 29that upon EID assignment by the EID generator 30 pushes thecorresponding rows to the multi-channel tracking data store 31. The MCTdata store 31 based on the campaign id of each incoming row segregatesthe collected events by campaign in respect of permissions managementand privacy constraints (if any).

The MCT Data store 31 also algorithmically obfuscates information thatcan be considered PII through hashing. A typical representation of theinformation residing in the corresponding data stores 32 is shown. Eachtuple of collected user event and profile attributes, such as the listof boxes in the bottom left portion of FIG. 2-2, is identified by anEID. With respect to data store 32, as shown by the placement of thedots in the identifier grid, a dot in the upper left represents a uniqueidentifier and a dot in the upper right box of a tuple represents anon-unique identifier. The user related tuples can contain both uniqueand non-unique identifiers based on the event or activity of the user.The unique identifier allow for deterministic matching 33 and immediateassociation of the corresponding EIDs with a universal identifier. Incases that the latter is not technically possible, (such as when rowsinclude non-unique identifiers), a non-deterministic approach such as aprobabilistic approach is used. For example, approximation techniquesusing thresholds to make probabilistic matching between a device and achannel are shown with regard to probabilistic matching instance 34 canbe used. Entries with EIDs that meet the set threshold criteria areupdated with a VID identifier as well. In general, if matching occurs, aVID is generated or matched to the EID.

Programmatic extensions that allow integration with 3^(rd) partyidentification services 35 are implemented in one embodiment. There arecases that integration with 3^(rd) party identification services allowsthe collection of an additional identifier for specific user events.This identifier is a key or character sequence that is mapped to 3^(rd)party identification service datastores. Upon matching the identifieduser is getting a VID that allows the user to be identified universally.

In all of the cases described above the VID generator 26 upon assignmentof the VID to the matching tuples pushes the identifier to thecorresponding universal tracking modules 27. The latter allows recurrentreal time identification of the user in any subsequent request.

In part, one embodiment of the invention is configured to be independentfrom the ability of the device or network to uniquely identify the user.In addition, it is configured such that in those cases where uniqueidentification is possible, the process remains the same having only therespective VID carrying more information. Finally, the data store of theuser with the VID can be immediately used as a reference store fordemographic or behavioral targeting and other audience profilingactivities.

End to End User Tracking Server Application and Profile FederationService

A site analytics event logging mechanism and application is implementedusing a server. It is used to aggregate user tracking correlation datafrom individual users for storage in a server user profiling database.The individual channel identifiers, EIDs, mapped to a unique VID can bestored as foreign keys into the respective product channel databases andtheir user information.

APIs are provided to allow products to request the VID for their EID,which can then be used to query additional targeting and optimizationinformation from the data warehouse for any of the other productchannels associated with the VID. The following functionality isprovided by the user profiling system shown in the accompanying FIG. 3(FIGS. 3-1 and 3-2). FIG. 3-1 shows the client side—the flow ofinformation from the mobile device. As shown, several mobile devices areoperating with respect to one or more campaigns or otherwise simplybeing used by their users. When an ad is clicked on device 7, the appdecorated URL indicates that the click through URL is enhanced with theapplication ID. This also causes attributes to be passed and for abrowser start up to be triggered on device 7. User events are sent tothe receiver 26 also known as the receiver layer. The MCT v Tags are theJavaScript components used to capture events. These tags areread/written into a local data store as shown. In general, from clickingon an ad to getting it takes about 500 ms. Each of the elements in FIG.3 can be implemented as a software module or software layer.

As shown in FIG. 3-2, the EID from the receiver is transmitted to themulti-channel tracking data store which can be implemented using a cloudbased infrastructure. A database at the MCT datastore that includes theEIDs receives information from MapReduce Operations which also sendsdata to the matching engine. The MCT matching software performs EID/VIDmapping and updates existing VID with new EID mappings thereto. Theproduct store provides tracking information for a particular channel.The participants in a campaign or mobile device users in general form anaudience. The audience management software updates user profiles withadditional user attributes from the product stores.

One embodiment for cross channel user tracking creates a “Universal UserIdentifier” or VID that is persistent across product, across channel,and across campaigns. Binding federation of individual channels' userinformation, associated with the channel user ID, along with 3rd partydata enables targetable unique user profiles.

A client side agent is created and used to collect and send events inorder to support the mapping of individual channel IDs (EID) to the sameuniversal user ID, for each device. The client side agent can beimplemented using the Universal User Tracking JavaScript approachesdescribed herein, user interaction logging with mobile content isperformed on the server-side, in standard log files of the ad server.

Scripts executed inside a client device are an extensible way of logginguser interaction with rich media advertising and mobile site content. Inan embodiment, user client side tracking across channels is accomplishedby inserting script tags in the content or advertisement.

Another embodiment of the invention automatically incorporates usertracking by configuration, e.g., in ad or landing page authoring tools.In cases where this is not possible, for example manually authoredsites, minimal integration of the agent script tags in content pagesprovides for tracking and reporting user interaction in manuallycontained channels as well.

Advantages of using client side scripting to perform cross channel usercorrelations are outlined as follows. In depth conversion reporting thatgoes down to the user level, across campaigns is generated. Counting isactivated when content is presented in the actual device, not when it isrequested by the publisher's content management system. If content iscached, it will not be counted by servers. Cached content accounts forup to one-third of all views. Not counting cached content seriouslyskews many metrics. It is for this reason server-based log analysis isnot considered suitable for analysis of human activity on websites andis not usually used in online ad serving today.

In one embodiment, updates performed by the JavaScript tracking agent,using HTTP requests, can be classified into two types. The first typeincludes agents that track page views. The second includes agents thattrack content object user interaction events. Each type is submitted tocorresponding endpoints of the receiver of the events 26. in a serverapplication for reporting.

In one embodiment, the universal scripted agent incorporatesfunctionality to store User ID mappings between the VID and the variousproduct channel User IDs as they are accessed by that user. These arestored in a client side HTML 5 database or another database.Additionally, the JavaScript agent incorporates end-to-end user trackingevent logging to appropriate analytic server applications, usingstandard HTTP requests.

For a given mobile device, cookies are traditionally used to trackvisitors within campaigns. Specifically, 3rd party cookies can identifya visitor uniquely invoking the JavaScript agent, while a campaigncookie could be used to identify campaigns that user has participatedin, resulting in cross campaign tracking. In the case of smart mobiledevices, HTML 5 cross domain page messaging allows writing and readingfirst party cookies by the agent from inside the device. This isaccomplished in cooperation with the publisher content page containingthe script tags. As a result, circumventing 3rd party cookierestrictions is made possible.

Additionally, in this embodiment, a VID cookie can be written from theagent inside the device, which can be read by components in the samedomain as the script server. This allows passing of the VID directly toan ad server. This allows the VID to correlate at the time of ad requestits own channel user ID cookie previously set. This provides real timetargeting of the universal cookie by ad servers, using informationfederated from other channels.

Server side probability mechanisms can correlate signals as a result ofuser actions across channels. Users often follow conversion paths froman ad or other content that cannot be fully tracked. As a result, theissuance of a VID by using exact correlation techniques is not possible.In these cases, approximation algorithms are used to provide estimatesabout the correlation of collected identifiers. Once a specificthreshold (pre-set or automatically defined) is exceeded, the qualifieduser events are assigned a VID that updates the corresponding productchannels. Feature phones, usually lacking local browser accessiblepersistent storage, can use a matching process, using approximationtechniques, to identify users across channels where correlation in theclient is not possible. For example, probabilistic Bayesian Networks cancompare existing user profiles served previously against incomingrequest profiles.

Collecting protocol headers and their values, identifiers andattributes, along with browser internally detectable attributes candetermine if a channel profile matches a profile previously seen. Ifnot, that incoming profile is saved in the user profile database as anew user.

Association of Individual Channel User Identifiers With a VID

A VID, persisted within the client device as a result of an externalJavaScript, can accomplish deterministic cross channel user correlationinside mobile devices. The individual product channel user trackingidentifiers are associated with that VID, when a user accesses each typeof channel for the first time.

One objective of user tracking end to end across marketing distributionchannels is to provide solutions that enable the exchange and leverageof user information across all point products employed, across allcampaigns. A universal identifier to uniquely identify individual userdevice interactions is one embodiment of the invention. This VID can becorrelated with individual product user IDs, such as EIDs, for eachchannel as a user accesses them.

Identifying attributes captured during the interactions may include theMSISDN telephone number for SMS and MMS messaging products, Emailaddresses for CRM channels, Application IDs for native applications,mobile web browser cookies, as well as Network Operator information.Each of the foregoing is assigned a hash number and subsequently groupedand mapped to the universal ID assigned to that user. One way hashing ofany personally identifying information ensures obfuscation of all PIIinformation, without compromising the user unique identifiers, such astheir MSISDN telephone number.

Users can be segmented into groups using federated data from theindividual products as well as 3rd party information sources. Thesesegments can then be used for premium targeting, as well as enhancedanalytics using data sources such as Nielsen's PRISM segments.

In one embodiment, smart mobile devices configure to use HTMLs or higherare used to track users. A probabilistic implementation for cases inwhich deterministic matching is not possible, is also an embodiment asdescribed herein. Some advantages of cross channel correlation in smartmobile devices include:

In general, the embodiments described herein are applicable to otherexisting and new marketing channels as well including social media. Oneembodiment of the invention relates to correlating representativechannel identifiers with a universal user identifier enabling crosschannel tracking.

Having already established an operational framework that enable productsto exchange information about their status, execution requests, andanything related to configuration and execution of the marketingcampaigns, this framework could be leveraged for real-time bidding usingautomated advertising exchanges. Additionally, cross-product activeoperational collaboration will enhance the overall user experience,e.g., personalization through behavioral targeting, and also enrichconversion tracking capabilities.

Each time a user is detected accessing a new product channel, the uniqueuser identifier specific to that channel is stored in a client sidedatabase, e.g., a HTML 5 database, correlating that channel with theuniversal user ID, as well as all other channels that user has accessed.Special events via a receiver (listener layer) are logged to a serveruser profiling application using analytic event tracking facilities.Additional information regarding the user's device environment is alsologged to a given software application embodiment.

FIG. 4 shows a system and some components used to perform crosscorrelation of the various distribution channels. It should be referredto, along with the previous descriptions of each component, during thesubsequent descriptions for cross channel correlation for HTML 5 iOS andAndroid smart devices. This implementation makes possible the use of auniversal JavaScript to read 1st and third party cookies set by thecomponents that make up a marketing and advertising platform. Onenon-limiting example of such a platform is Velti's mGage platform.

Correlating a Mobile Ad Serving Channel to a Universal User ID

Mobile Ad Severs normally support three ways to uniquely identify andstore user information. A user ID provided by the operator, 1st partycookies stored in user's devices, and session identification. Theseoptions can be used interchangeably and in combination, given certainconditions apply.

Operator Provided Anonymous User Identifier

In cases where the mobile advertising server is white listed by acarrier, or an operator supports it unconditionally; it is possible tocapture unique identifications assigned by the network to a user'sdevice, upon device registration. Operators that support the provisionof the particular information may in some cases alter unique identifiersfor users, e.g., by rotation of identifiers across multiple users. Inthat case it is harder, if not impossible, to uniquely identify users.In such cases, one of the other methods may apply as a means tocircumvent the issue.

1st Party Cookie

The Ad server creates a unique identifier with two goals, the first ofwhich is to track repeated unique visits for frequency capping. Thesecond is to use this information for a user tracking cookie stored indevices. The ad server convenience package, executed on a publisher'scontent management system, can be used to pass an ad server cookie tothe device.

The convenience package is responsible for translating the ad server 3rdparty domain cookie to a publisher's 1st party domain cookie. Otherwisethat cookie would be a 3rd party cookie in a different domain and isoften blocked at the browser. It is responsible for translating back thecookie for repeat visits, as well as pass header information describingthe device type and carrier.

Correlating a 3rd Party Ad Serving Channel to a Universal ID

In cases that 3rd party ad serving is present, that is an ad server adtags are delivered from another vendors ad server, unique useridentification may not be applicable at all if cookies are disabled ordisallowed. The Ad Server can be used to uniquely track impressions andtheir click through, but identification of the user requires using acookie mechanism to ingest a cookie to a user's device upon cookiedelivery. That requires that 3rd party cookies are enabled by thebrowser configuration.

One embodiment circumvents this situation by including the “UniversalJavaScript URL” in tandem with the actual ad request when inserted intothird party ad server campaigns. It is common practice to trafficmultiple graphic requests as a compound ad tag using transparenttracking pixels for example. In a preferred embodiment, the UniversalJavaScript request serves the same purpose a tracking pixel would, butdelivers the ability to perform the same capabilities as discussedherein.

Correlating a Mobile 3rd Party Site Channel to a Universal ID

In the case of 3rd party mobile sites, there is no existing technologycurrently that enables user identification. A method is oftenimplemented by connecting to a 3rd party site analytics product. Thatproduct captures information about the overall performance of the siteand its user interaction objects, but would include enhancements toidentify unique users as explained previously under the “Universal UserTracking JavaScript” description.

Correlating Native Application Channels to a Universal ID

The following approach describes the steps to determine that a user on adevice, installing and interacting with any number of iOS or Androidapplications, is the same user accessing the mobile web through thedevice browser. It makes use of a special Internet address called acustom URL. That URL is a unique and persistent Internet address forinvoking a specific native application installed on the device. It isnormally used for clicking on links in pages rendered in browser toinvoke the application.

For user tracking purposes, custom URLs will be used in a differentmanner, by appending it as part of the query string of a browser adrequest URL. That URL is used to present a new ad format in a browserwindow, rather than the native application itself. It essentiallyprovides a call back mechanism to the requesting application when thebrowser ad is terminated by the user or the ad itself. When the adrequest URL is invoked by the application, it will cause an HTML 5content ad to be requested from an ad server and returned to the browserwindow for rendering. The same approach can be applied for these caseswhere the user clicks on an ad link served within the nativeapplication.

Embedded in that content is a site analytics event tracking JavaScript.Enhancements are added to that script that allow the custom URL to beretrieved from the browser address field and stored in the browser HTML5 local database. The VID delivered with the JavaScript file is alsomaintained in that database. This mechanism provides a fully correlatedunique mapping of a Native Application ID and device ID to the universalID for that user. Lastly, the custom URL is invoked when the adcompletes or the user closes the ad, using it to return to the nativeapplication at the same point prior to the browser ad event. The stepsexecuted are:

Correlation of Third Party Ad Serving Channel to a VID

The serving of ad tags from third party ad servers into a 3rd partyhosted site using a hosted creative or tracking pixel, can make use ofthe previously explained approach to track a user. In this scenario, thepreviously described JavaScript is trafficked the same way a trackingpixel is, in parallel with any other trafficked ad tags.

Correlation of Marketing and CRM Message Channels to a Universal ID

By embedding the universal end to end user tracking JavaScript in anyhosted mobile site or landing page, the individual product channelspecific user identifiers can be captured and saved in the client sidedatabase of any HTML 5 smart device. The channel specific user ID ispassed to the JavaScript executing in the page, encoded in the Internetbrowser address field. That ID is usually contained in the query string,and is usually hashed to be unique, encrypting any personallyidentifying data.

FIG. 5 shows the use of a compact URL service to encode a user's MSIDNin to a landing page URL, embedded in an SMS message sent to that user.When the user executes the embedded URL in the received SMS or MMSmessage, the compact URL will request the service convert the tiny URLinto the full landing page Internet address and redirect their browserto the mobile page. That page is associated with the original SMSmessage. Alternatively, in the case of Email messaging, a user emailaddress could be used instead of the MSIDN phone number.

MDM software may enable transmission (1) of SMS information to a URLservice from a mobile device. An SMS service may receive (2) a hashrelated to a URL from the URL service and may transmit (3) an SMS+hashto the mobile device. Related user strings may also be transmitted (3 a)from the SMS service to an identifier management API. An EID may betransmitted (5) from the identifier management API to the SMS service.The user may click a link related to the SMS+hash and data may betransmitted (6) to a mobile web page system enabled with universalJavaScript. The mobile webpage system may transmit (7) a related hash toa mobile web analytics system, which may transmit (8) a user string+hash to the identifier management API. The identifier management API maytransmit (9) an EID to mobile web analytics system and may transmit (10)a US+EID to a datastore.

A matching engine may pull (11) related data from the datastore and maypublish (12) further related data to the datastore, which may pass thedata to a retrieval API. The retrieval API may also receive (13 a) anEID from the mobile web analytics system and receive (13(b) an EID:VIDmatch from the URL service.

Lastly, the hashed user identifier for that marketing suite channel isthen accessible to the universal end to end user tracking JavaScript inthe page for extraction and storage in the local database. That databasenow contains the marketing suite channel user identifier, correlatedwith the stored VID and all other channels that user has accessed. Thosecorrelations are logged to the server user end to end trackingapplication as well, for federation with additional data products and3rd party supplied data such as various targeting categories.

Tracking Application Installs from Other Applications and Mobile Web

FIG. 6 is a system of an exemplary implementation of EID and VID mappingbased for tracking application installations initiated from an installedapplication or the device browser. An ad creative may be served (1) froman ad server to a publisher page. A user (actor) may access the adcreative through an ad click-through (2) from the publisher page, whichmay communicate to an application store from which an application isavailable. Related user strings may be passed (3 a) to a receiver. Theapplication may be downloaded (3) to the mobile device and installed orlaunched (5) at the mobile device, which may be enabled by an SDK and/ordirected by the user. Related user strings may also be passed (6) to asell side platform and then on to the receiver.

An EID may be passed (8) from the receiver to the sell side platform andUS+EIDs may be passed (9) to a datastore from the receiver. A matchingengine may pull (10) data from the datastore and the datastore mayreceive (11) a VID from the matching engine. A retrieval API may receivedata and/or the VID from the datastore and an EID:VID may be passed (12a) to the sell side platform and/or passed (12) to the ad server. Inthis way, the system may track application installations initiated froman installed application or the device browser.

Tracking Campaigns Delivered Across Multiple Devices

Using the technique presented in the previous section, short codesembedded in traditional media can be used to track campaigns deliveredacross multiple devices. The user sends a short code and keywordembedded in radio, television, computer video, outdoor billboards orprinted on packaged goods from their mobile device SMS application. Thereturn of a response message with a compact URL to an associated landingpage can track them as they navigate from traditional media consumed onanother device to the mobile web, as explained previously.

FIGS. 7A-7F provide exemplary reports showing a representative exampleof tracking a user through the previously described marketing channelsin real time. FIG. 7A shows a graph of the performance of the EIDgeneration service along with the incoming source information as part ofa user interface. The unique user ID for each specific marketingcommunications channel is recorded in the device resident HTML 5database and transmitted to the server user tracking application onlythe first time the user accesses each channel.

FIG. 7B shows a user interface configured to aggregate information thatshows the total amount of anonymously identified users, the total amountof received user events and the matched events (VID assignments). FIG.7C shows a user interface that includes a Multi Channel Trackingcoverage chart shows how many of the uniquely identified users can coverany of the channels where tracking is applied. The more users identifiedin >2 channels the more universal the information we have about theprofile of the user.

FIG. 7D is a user interface that shows identified users vs. marketingchannel interaction events. That is a ratio to understand how the newlyincoming events contribute to identify new users. FIG. 7E is a userinterface that shows multi Channel tracking event distribution permarketing and advertising communication channel. FIG. 7F is a userinterface of a substantially real time table or a real time table thatshows the incoming event types, the time-stamp of occurrence that isused by the approximation matching methods along with the matchingmethod applied.

It is expected there will be cases where deterministic correlation ofusers across some marketing channels cannot be performed in the device,e.g., feature phones that do not enable JavaScript or the conversionpath is such that does not allow capturing of attributes that can bedeterministically matched. In this and other similar cases correlationof channel content requests against existing user profiles can beperformed using an approximation approach. This section describes theapproach to that.

This solution uses the global unique user identifier to identify userinteractions. All the attributes from user events captured during theinteraction may include the MSISDN (hashed), browser type, along withlocation information, internet address or other identifiers that can beparsed during the interaction. Attributes can be assigned a hash numberto ensure PII is not stored, and is mapped into distinct groups. Thecollected attributes contribute in the development of unique userprofiles. One of the methods used to achieve that is throughhierarchical clustering.

Collected attribute tuples form clusters that represent unique userentities. The method iteratively calculates a similarity score acrossclusters and merges the ones that exceed the specified threshold. Theprocess ends when there are no additional clusters to be merged. Theresulting clusters are assigned a VID. The latter universal identifiersupdate the tuples in corresponding product stores and are also suppliedto the universal tracking component to allow within device matching infuture user events.

There are cases that EID corresponds to attributes that can be matcheddeterministically. In that case the matching EIDs are assigned ananonymous universal identifier (VID). As described above there are casesthat VIDs can be assigned through hierarchical clustering. Otherapproximation techniques wrapped into the implementation of thenon-deterministic matching instance include probabilistic matching.Probabilistic matching is used usually as an offline process, given itsaverage time to complete, as an alternative method that leveragesprobability theory in the reasoning for user attributes correlation.

In one embodiment Bayesian Networks can be used to identify usermatching cases. In the case of Bayesian Networks we represent thepredicting attributes in the form of an acyclic directed graph. Theedges in a Bayesian graph represent the dependent relation betweenattributes represented in vertices. Therefore the resulting networkdescribes the probability distribution of the variables based on thedependency assumptions included in the model. The latter allows thedefinition of Conditional Probability Tables that give a probability fora match given a set of conditions defined by the formulated network. Oneimplementation considers as matches the one with the higher probabilityabove the threshold.

FIG. 8A describes a system embodiment and related method steps thatallows mobile smart device native applications to invoke a browserdisplay, which when completed returns to the application. A custom URLis passed to an embedded script running in the browser content. Thecustom URL is passed in the query string of the content URL and isunique to each application on each device. It is captured as thatchannel user identifier and correlated to the Universal User ID in theHTML 5 local database. User tracking in the context of the Androidoperating system is shown in the workflow diagram of FIG. 8A. Relatedcookie and HTML 5 implementation are described in FIG. 8B and relatedmethod steps. A user tracking approach for a native iPhone applicationis shown in FIG. 8C.

Universal Cross Channel User Tracking Script Work Flow

FIGS. 8D and 8E describe the universal JavaScript implementation thatallows capturing individual channel user identifiers and correlates themto a VID in HTML 5 local databases. Various identifiers for advertisingIFA are shown in FIGS. 8A-8G.

User Opt Out of Tracking Work Flow

FIGS. 8F and 8G describe a Universal JavaScript implementation thatallows users to opt out and opt back in to tracking.

The computing device may include a server computer, a mobile device, aclient user computer, a personal computer (PC), a laptop computer, atablet PC, a desktop computer, a control system, a microprocessor or anycomputing device capable of executing a set of instructions (sequentialor otherwise) that specify actions to be taken by that computing device.Further, while a single computing device is illustrated, the term“computing device” shall also be taken to include any collection ofcomputing devices that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of thesoftware features or methods disclosed herein. The computing device canincludes machine readable medium or other memory that includes one ormore software modules for displaying a graphical user interface such asa user tracking reporting interface or other interface described herein.

In the preceding embodiments described herein, a mobile device or an enduser device include, without limitation, mobile phones, smart phones,iPads, Android-based devices, tablets, personal digital assistants,hand-held computers, ultra-mobile personal computers, notebooks, laptopcomputers and the like. The systems described herein can include one ormore computers or servers that contain and/or run the application, and avisual display for viewing a graphic user interface. Devices, computers,and servers preferably include a processing unit or processor, a systemmemory, a disk storage, a communication interface, an input device, anoutput device, and a system bus. System bus couples system componentsincluding, but not limited to, system memory to processing unit. Theprocessing unit can be any of various available processors. One or moreapplications can include various data elements and programs suitable forperforming process steps, user identifier generation and tracking andcorrelation across communication channels.

Storage may include removable or fixed, volatile or non-volatile orpermanent or re-writable computer storage media. The computer readablemedium can be any available medium that can be accessed by a generalpurpose or special purpose mobile device. By way of example, and notlimitation, such a computer readable medium can comprise flash memory,RAM, ROM, electrically erasable programmable read only memory (EEPROM),optical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium that can be used to store digitalinformation on a mobile device.

The computer readable medium embodies a program, functions, and/orinstructions that cause a device, computer, or server to operate in aspecific and predefined manner as described herein. For example, themessaging, application, and reporting discussed herein can beimplemented as software code to be executed using any suitable computerlanguage and may be stored on any of the storage media described above,or can be configured into the logic of device, computer or server. Suchsoftware code may be executed using any suitable computer language suchas, for example, Java, JavaScript, C++, C, C#, Perl, HTML, Visual Basic,database languages, APIs, various system-level SDKs, assembly, firmware,microcode, and/or other languages and tools.

The present invention may be embodied in many different forms,including, but in no way limited to, computer program logic for use witha processor (e.g., a microprocessor, microcontroller, digital signalprocessor, or general purpose computer), programmable logic for use witha programmable logic device, (e.g., a Field Programmable Gate Array(FPGA) or other PLD), discrete components, integrated circuitry (e.g.,an application Specific Integrated Circuit (ASIC)), or any other meansincluding any combination thereof.

Computer program logic implementing all or part of the functionalitypreviously described herein may be embodied in various forms, including,but in no way limited to, a source code form, a computer executableform, and various intermediate forms (e.g., forms generated by anassembler, compiler, linker, or locator). Source code may include aseries of computer program instructions implemented in any of variousprogramming languages (e.g., an object code, an assembly language, or ahigh-level language such as Fortran, C, C++, JAVA, or HTML) for use withvarious operating systems or operating environments. The source code maydefine and use various data structures and communication messages. Thesource code may be in a computer executable form (e.g., via aninterpreter), or the source code may be converted (e.g., via atranslator, assembler, or compiler) into a computer executable form.

The application may be fixed in any form (e.g., source code form,computer executable form, or an intermediate form) either permanently ortransitorily in a tangible storage medium, such as a semiconductormemory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-ProgrammableRAM), a magnetic memory device (e.g., a diskette or fixed disk), anoptical memory device (e.g., a CD-ROM), a PC card (e.g., PCMCIA card),or other memory device. For example, a computer program product mayreside on a computer readable storage medium having a plurality ofinstructions stored thereon, which, when executed by a processor, causethe processor to perform operations discussed herein. The applicationmay be fixed in any form in a signal that is transmittable to a computerusing any of various communication technologies, including, but in noway limited to, analog technologies, digital technologies, opticaltechnologies, wireless technologies (e.g., Bluetooth), networkingtechnologies, and internetworking technologies. The application may bedistributed in any form as a removable storage medium with accompanyingprinted or electronic documentation (e.g., shrink-wrapped software),preloaded with a computer system (e.g., on system ROM or fixed disk), ordistributed from a server or electronic bulletin board over thecommunication system (e.g., the Internet or World Wide Web).

Hardware logic (including programmable logic for use with a programmablelogic device) implementing all or part of the functionality previouslydescribed herein may be designed using traditional manual methods, ormay be designed, captured, simulated, or documented electronically usingvarious tools, such as Computer Aided Design (CAD), a hardwaredescription language (e.g., VHDL or AHDL), or a PLD programming language(e.g., PALASM, ABEL, or CUPL).

Programmable logic may be fixed either permanently or transitorily in atangible storage medium, such as a semiconductor memory device (e.g., aRAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memorydevice (e.g., a diskette or fixed disk), an optical memory device (e.g.,a CD-ROM), or other memory device. The programmable logic may be fixedin a signal that is transmittable to a computer using any of variouscommunication technologies, including, but in no way limited to, analogtechnologies, digital technologies, optical technologies, wirelesstechnologies (e.g., Bluetooth), networking technologies, andinternetworking technologies. The programmable logic may be distributedas a removable storage medium with accompanying printed or electronicdocumentation (e.g., shrink-wrapped software), preloaded with a computersystem (e.g., on system ROM or fixed disk), or distributed from a serveror electronic bulletin board over the communication system (e.g., theInternet or World Wide Web).

As used herein a module refers to software, hardware, or firmwaresuitable for performing a specific data processing or data transmissiontask. Typically, in a preferred embodiment a module refers to a softwareroutine, program, or other memory resident application suitable forreceiving, transforming, routing and processing instructions, or variouscookies, scripts, client side tracking identifiers, non-universalidentifiers, universal identifiers, federating and user matching data,and other information of interest.

Devices and systems described herein may include operatively associatedcomputer-readable media such as memory for storing software applicationsused in obtaining, processing, storing and/or communicating data. It canbe appreciated that such memory can be internal, external, remote orlocal with respect to its operatively associated computer or computersystem.

Memory may also include any means for storing software or otherinstructions including, for example and without limitation, a hard disk,an optical disk, floppy disk, DVD (digital versatile disc), CD (compactdisc), memory stick, flash memory, ROM (read only memory), RAM (randomaccess memory), DRAM (dynamic random access memory), PROM (programmableROM), EEPROM (extended erasable PROM), and/or other likecomputer-readable media.

In general, computer-readable memory media applied in association withembodiments of the invention described herein may include any memorymedium capable of storing instructions executed by a programmableapparatus. Where applicable, method steps described herein may beembodied or executed as instructions stored on a computer-readablememory medium or memory media. These instructions may be softwareembodied in various programming languages such as C++, C, Java, and/or avariety of other kinds of software programming languages that may beapplied to create instructions in accordance with embodiments of theinvention.

The aspects, embodiments, features, and examples of the invention are tobe considered illustrative in all respects and are not intended to limitthe invention, the scope of which is defined only by the claims. Otherembodiments, modifications, and usages will be apparent to those skilledin the art without departing from the spirit and scope of the claimedinvention.

The aspects, embodiments, features, and examples of the invention are tobe considered illustrative in all respects and are not intended to limitthe invention, the scope of which is defined only by the claims. Otherembodiments, modifications, and usages will be apparent to those skilledin the art without departing from the spirit and scope of the claimedinvention.

The use of headings and sections in the application is not meant tolimit the invention; each section can apply to any aspect, embodiment,or feature of the invention.

Throughout the application, where compositions are described as having,including, or comprising specific components, or where processes aredescribed as having, including or comprising specific process steps, itis contemplated that compositions of the present teachings also consistessentially of, or include, the recited components, and that theprocesses of the present teachings also consist essentially of, orinclude, the recited process steps.

In the application, where an element or component is said to be includedin and/or selected from a list of recited elements or components, itshould be understood that the element or component can be any one of therecited elements or components and can be selected from a groupconsisting of two or more of the recited elements or components.Further, it should be understood that elements and/or features of acomposition, an apparatus, or a method described herein can be combinedin a variety of ways without departing from the spirit and scope of thepresent teachings, whether explicit or implicit herein.

The use of the terms “include,” “includes,” “including,” “have,” “has,”or “having” should be generally understood as open-ended andnon-limiting unless specifically stated otherwise.

The use of the singular herein includes the plural (and vice versa)unless specifically stated otherwise. Moreover, the singular forms “a,”“an,” and “the” include plural forms unless the context clearly dictatesotherwise. In addition, where the use of the term “about” is before aquantitative value, the present teachings also include the specificquantitative value itself, unless specifically stated otherwise.

It should be understood that the order of steps or order for performingcertain actions is immaterial so long as the present teachings remainoperable. Moreover, two or more steps or actions may be conductedsimultaneously.

Where a range or list of values is provided, each intervening valuebetween the upper and lower limits of that range or list of values isindividually contemplated and is encompassed within the invention as ifeach value were specifically enumerated herein. In addition, smallerranges between and including the upper and lower limits of a given rangeare contemplated and encompassed within the invention. The listing ofexemplary values or ranges is not a disclaimer of other values or rangesbetween and including the upper and lower limits of a given range.

The examples presented herein are intended to illustrate potential andspecific implementations of the invention. It can be appreciated thatthe examples are intended primarily for purposes of illustration of theinvention for those skilled in the art. There may be variations to thesediagrams or the operations described herein without departing from thespirit of the invention. For instance, in certain cases, method steps oroperations may be performed or executed in differing order, oroperations may be added, deleted or modified.

Furthermore, whereas particular embodiments of the invention have beendescribed herein for the purpose of illustrating the invention and notfor the purpose of limiting the same, it will be appreciated by those ofordinary skill in the art that numerous variations of the details,materials and arrangement of elements, steps, structures, and/or partsmay be made within the principle and scope of the invention withoutdeparting from the invention as described in the claims.

What is claimed is:
 1. A computer-based method of tracking a user acrossa plurality of communication channels comprising: generating a firstnon-universal user identifier associated with a first communicationchannel in response to a first action of a mobile device; generating asecond non-universal user identifier associated with a secondcommunication channel in response to a second action of the mobiledevice; storing the first non-universal user identifier and the secondnon-universal user identifier in a data repository; correlating, usingan application installed on the mobile device, the stored firstnon-universal user identifier and the stored second non-universal useridentifier with a universal identifier having an associated userprofile; and associating the universal identifier with a plurality ofactions performed with the mobile device such that the associated userprofile comprises a mapping between the universal identifier andactivities performed by the user across the plurality of communicationchannels.
 2. The computer-based method of claim 1 further comprisinggenerating a third non-universal user identifier associated with a thirdcommunication channel in response to a third action of the mobiledevice.
 3. The computer-based method of claim 2 wherein the first,second, and third communication channels are selected from the groupconsisting of receiving text messages, receiving emails, viewing avideo, viewing a webpage, viewing a video ad, viewing a webpage ad,interacting with social applications, and downloading an application. 4.The computer-based method of claim 1 wherein the profile is generatedusing approximation methods including clustering and probabilisticmatching using a plurality of mobile device channel specificidentifiers.
 5. The computer-based method of claim 4 wherein the mobiledevice channel specific identifiers are selected from the groupconsisting of a first party cookie, a third party cookie, and aplurality of product identifiers.
 6. The computer-based method of claim1 wherein associating the universal identifier with a plurality ofactions is performed using a computing device running a Bayseian Networkto perform probabilistic user matching.
 7. The computer-based method ofclaim 1 further comprising comparing one or more user profiles toincoming request profiles using a probabilistic Bayesian network runningon computing device.
 8. A computer-based system of tracking a useracross a plurality of communication channels comprising: one or morereceivers, executing on a computing device, the one or more receiversconfigured to collect the information from the plurality ofcommunication channels; an event ID generator configured to providenon-universal user identifiers that can be matched to a universal useridentifier; a data repository comprising a plurality of non-universaluser identifiers, each non-universal user identifier associated with onecommunication channel of the plurality of communication channels; and afederation server configured to receive user actions associated witheach communication channel from a mobile device client application, thefederation server configured to generate a universal identifier usingthe received user actions and the plurality of non-universal useridentifiers.
 9. The system of claim 6 further comprising a compactuniform resource locator (URL) software module configured to compact amobile web URL accessed by the mobile device and generate anon-universal user identifier associated with the compacted mobile URL.10. The system of claim 6 wherein the communication channels areselected from the group consisting of receiving text messages, receivingemails, viewing a video, viewing a webpage, viewing a video ad, viewinga webpage ad, and downloading an application.
 11. The system of claim 6further comprising a privacy software module configured to enable theuser to opt out of being tracked using a universal identifier.
 12. Thesystem of claim 6 further comprising a privacy software module.
 13. Acomputer program product residing on a computer readable storage mediumhaving a plurality of instructions stored thereon, which, when executedby a processor, cause the processor to perform operations for tracking auser across a plurality of communication channels, the operationscomprising: generating a first non-universal user identifier associatedwith a first communication channel in response to a first action of amobile device; generating a second non-universal user identifierassociated with a second communication channel in response to a secondaction of the mobile device; storing the first non-universal useridentifier and the second non-universal user identifier in a datarepository; correlating, using an application installed on the mobiledevice, the stored first non-universal user identifier and the storedsecond non-universal user identifier with a universal identifier havingan associated user profile; and associating the universal identifierwith a plurality of actions performed with the mobile device such thatthe associated user profile comprises a mapping between the universalidentifier and activities performed by the user across the plurality ofcommunication channels.
 14. The computer program product of claim 13,wherein the operations further comprise generating a third non-universaluser identifier associated with a third communication channel inresponse to a third action of the mobile device.
 15. The computerprogram product of claim 14 wherein the first, second, and thirdcommunication channels are selected from the group consisting ofreceiving text messages, receiving emails, viewing a video, viewing awebpage, viewing a video ad, viewing a webpage ad, interacting withsocial applications, and downloading an application.
 16. The computerprogram product of claim 13 wherein the profile is generated usingapproximation methods including clustering and probabilistic matchingusing a plurality of mobile device channel specific identifiers.
 17. Thecomputer program product of claim 16 wherein the mobile device channelspecific identifiers are selected from the group consisting of a firstparty cookie, a third party cookie, and a plurality of productidentifiers.
 18. The computer program product of claim 13 whereinassociating the universal identifier with a plurality of actions isperformed using a computing device running a Bayseian Network to performprobabilistic user matching.
 19. The computer program product of claim13 wherein the operations further comprise comparing one or more userprofiles to incoming request profiles using a probabilistic Bayesiannetwork running on a computing device.